home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magicbio.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
5KB
|
139 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* MagicBIOS Basic Input Output System Modula-2 Interface *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicBIOS;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
FROM SYSTEM IMPORT ADDRESS;
FROM MagicTypes IMPORT PtrPD;
TYPE PtrMD = POINTER TO MD;
MD = RECORD
mLink: PtrMD;
mStart: ADDRESS;
mLength: lCARDINAL;
mOwn: PtrPD;
END;
TYPE PtrMPB = POINTER TO MPB;
MPB = RECORD (* memory parameter block *)
mpMfl: PtrMD; (* memory free list *)
mpMal: PtrMD; (* memory allocated list *)
moRover: PtrMD; (* roving pointer *)
END;
PROCEDURE Getmpb (VAR mpb: ADDRESS);
CONST PRT = 0;
AUX = 1;
CON = 2;
MIDI = 3;
IKBD = 4;
RAWCON = 5;
PROCEDURE Bconstat (device: sINTEGER): BOOLEAN;
PROCEDURE Bconin (device: sINTEGER): lCARDINAL;
PROCEDURE Bconout (device: sINTEGER; c: CHAR);
CONST DrvA = 0;
DrvB = 1;
DrvC = 2;
DrvD = 3;
DrvE = 4;
DrvF = 5;
DrvG = 6;
DrvH = 7;
DrvI = 8;
DrvJ = 9;
DrvK = 10;
DrvL = 11;
DrvM = 12;
DrvN = 13;
DrvO = 14;
DrvP = 15;
CONST Read = 0;
Write = 1;
ReadNoMC = 2;
WriteNoMC = 3;
PROCEDURE Rwabs (rw: sINTEGER; buf: ADDRESS; count, recno, dev: sINTEGER): lINTEGER;
PROCEDURE Setexc (vecnum: sINTEGER; vec: ADDRESS): ADDRESS;
PROCEDURE Tickcal (): lCARDINAL;
TYPE PtrBPB = POINTER TO BPB; (* BIOS Parameter Block *)
BPB = RECORD
recsiz: sCARDINAL;
clsiz: sCARDINAL;
clsizb: sCARDINAL;
rdlen: sCARDINAL;
fsiz: sCARDINAL;
fatrec: sCARDINAL;
datrec: sCARDINAL;
numcl: sCARDINAL;
bflags: sCARDINAL;
END;
PROCEDURE Getbpb (drive: sINTEGER): ADDRESS;
PROCEDURE Bcostat (device: sINTEGER): BOOLEAN;
PROCEDURE Mediach (dev: sINTEGER): sINTEGER;
PROCEDURE Drvmap (): lBITSET;
CONST KRSHIFT = Bit0; (* Tastatur-Status *)
KLSHIFT = Bit1;
KCTRL = Bit2;
KALT = Bit3;
KCAPS = Bit4;
KRMOUSE = Bit5;
KLMOUSE = Bit6;
KRESERVED = Bit7;
PROCEDURE Kbshift (keys: sBITSET): sBITSET;
END MagicBIOS.